Communication and computing technologies are starting to converge into a single wireless mobile device with continuously decreasing form factors. For example, handheld “smart phones” are emerging that combine capabilities such as voice and data communications typically provided by a cellular telephone with application programs typically provided by a computer. Consequently, a mobile user may use a single device to make telephone calls, maintain calendars and contacts, browse the Internet, communicate electronic mail (“email”), and more. As the number of application programs resident on a smart phone increases, however, so does the need for increased processing capabilities, such as processor speed, memory size, and power consumption. Accordingly, there may be a need for a software architecture that improves use of limited device resources.